home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 1
/
Gekikoh Dennoh Club Vol. 1 (Japan).7z
/
Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin
/
kowin
/
archive
/
sys
/
kowin14d.lzh
/
include
/
GOELIB.H
< prev
next >
Wrap
C/C++ Source or Header
|
1992-10-26
|
3KB
|
87 lines
/*Ko-Window Parts library v1.05 1992/10/26 by Goemon*/
/* goelib.h */
typedef struct { /* スライドスイッチパターン構造体 */
int mode; /* 0:横 1:縦 */
Sheet *Slider; /*スライダーパターン*/
Sheet *Rale[2]; /*溝パターン*/
Sheet *Start; /*溝の開始パターン*/
Sheet *End[2]; /*溝の終了パターン*/
} GSliderPat;
typedef struct { /* スライドスイッチ構造体 */
int num; /* 番号 */
int x; /* x座標 */
int y; /* y座標 */
int max; /* 最大 */
int nx; /* 数値表示のx座標 */
int ny; /* 数値表示のy座標 */
int nmin; /* 数値の最小値 */
int nmax; /* 数値の最大値 */
int nmode; /* 数値表示モード(0は普通,1は反転) */
int npos; /* 現在位置(相対位置)*/
int nc; /* 表示桁数(符号は含まず)*/
int nsize; /* 文字サイズ */
char nstr[16];/*数値表示用文字バッファ*/
GSliderPat *gspat; /*スライダーパターン*/
} GSlider;
typedef struct { /* スライドスイッチ辞書構造体 */
int max;
int num;
GSlider *gs;
} GSliderReg;
extern GSliderPat GSliderStPatX;
extern GSliderPat GSliderStPatY;
/*スライドスイッチの描画*/
extern int GSliderSetDraw( GSlider *,DrawBuf *);
/*スライドスイッチの移動*/
extern int GSliderSetPos( GSlider *,DrawBuf *, int );
/* マウス位置からPOS位置計算*/
extern int GSliderGetMPos( GSlider *, int, int, int, int, int );
/* マウスがスライダーの範囲内に入っているか */
#define GSliderGetMPoint(gs,mx,my) (((gs)->gspat->mode) ? \
( (my) >= (gs)->y && (my) <= (gs)->y + (gs)->max \
+ (gs)->gspat->Slider->v && (mx) >= (gs)->x && (mx) < (gs)->x \
+ (gs)->gspat->Slider->h )\
: ( (mx) >= (gs)->x && (mx) <= (gs)->x + (gs)->max \
+ (gs)->gspat->Slider->h && (my) >= (gs)->y && (my) < (gs)->y \
+ (gs)->gspat->Slider->v )) || \
((gs)->nc > 0 && (mx) >= (gs)->nx && (mx) <= (gs)->nx \
+ (gs)->nsize * ((gs)->nc + 1) / 2 && (my) >= (gs)->ny && \
(my) < (gs)->ny + (gs)->nsize )
/* スライダーの現在位置を得る*/
#define GSliderGetPos(gs) (gs)->npos
/* 登録簿の作成 */
#define GSRegOpen(gsr,mx) \
(gsr)->max = (mx);(gsr)->num = 0;\
(gsr)->gs = (GSlider*)malloc(sizeof(GSlider) * (mx))
/* 登録簿の破棄 */
#define GSRegClose(gsr) free((gsr)->gs)
/* 登録 */
extern void GSRegSetGSlider(GSliderReg *,int,int,int,int,int,int,int,int,int,int,int,int,GSliderPat *);
/* 登録簿内のスライダーの描画*/
extern int GSRegSetDraw( GSliderReg *,DrawBuf *);
/* カーソル位置から任意のスライダーを選ぶ */
extern int GSRegSelectGSlider( GSliderReg *,int,int);
/* 登録簿検索 */
extern GSlider *GSRegGetGSlider(GSliderReg *,int);
/* スライダーの現在位置を得る*/
#define GSRegGetPos(gsr,num) \
GSRegGetGSlider(gsr,num)->npos
/* マウス位置からPOS位置計算*/
#define GSRegGetMPos(gsr,num,mx,my,stat1,stat2,stat3) \
GSliderGetMPos(GSRegGetGSlider(gsr,num),mx,my,stat1,stat2,stat3)
/*スライドスイッチの移動*/
#define GSRegSetPos(gsr,pdbuf,num,pos) \
GSliderSetPos(GSRegGetGSlider(gsr,num),pdbuf,pos)